package com.adisi.objetos;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.adisi.bd.AutoDatos;

public class AutoManager {

	
	public static List<Auto> conseguirTodosLosAutos() {
		AutoDatos ad = new AutoDatos();
		return ad.conseguirTodosLosAutos(false);
	}

	public static List<Auto> conseguirTodosLosAutos(boolean disponibles ) {
		AutoDatos ad = new AutoDatos();
		return ad.conseguirTodosLosAutos(disponibles);
	}

	
	
	public static Auto conseguirUnAuto(int idAuto) {
		AutoDatos ad = new AutoDatos();
		return ad.conseguirUnAuto(idAuto);
	}

	public static Auto conseguirUnAuto(String dominio) {
		AutoDatos ad = new AutoDatos();
		return ad.conseguirUnAuto(dominio);
	}

	public static int grabarUnAuto(Auto auto) {
		
		AutoDatos ad = new AutoDatos();
		
		int idDueno = auto.getDuenoAuto().getIdDueno();
		
		if(idDueno==0) {
			idDueno = DuenoManager.guardarDueno(auto.getDuenoAuto());
			
			Dueno dueno = auto.getDuenoAuto(); //DuenoManager.conseguirUnDueno(idDueno);
			
			//auto.setDuenoAuto(dueno);
		}
		
		
		int idAuto = 0;
				
		int y = 0;
		
		idAuto = ad.grabarUnAuto(auto);
		
		
				
		return idAuto;
	}

	public static boolean actualizarKilometraje(Auto auto, BigDecimal kms) {
		
		AutoDatos ad = new AutoDatos();
		
		return ad.grabarUnAuto(auto.getIdAuto(), kms);
	}	
	
	public static boolean borrarUnAuto(Auto auto) {	
		AutoDatos ad = new AutoDatos();
		return ad.borrarUnAuto(auto.getIdAuto());
	}

	public static boolean borrarUnAuto(int IdAuto) {
		AutoDatos ad = new AutoDatos();
		return ad.borrarUnAuto(IdAuto);
	}

	public static boolean verificarAlertas(Auto auto) {
		
		auto.setAlertas(auto.getAlertas());
		
		return (auto.getAlertaCercana()!=null);
		
	}
	
	public static void activarAlertaGNC(Auto auto, Date vto_oblea, Usuario usuario) {
		
		//Actualizamos alertas de vto de licencia
		
		//Buscamos alerta x licencia
		Alerta alerta = new Alerta(0, "Auto", auto.getIdAuto(), "Oblea GNC", vto_oblea, EstadoAlerta.ACTIVA, usuario.getIdUsuario(), new Date());
		
		AlertaManager.actualizarAlerta(alerta,  usuario);
				
	}
}
